import path from 'path'
/**
 * 筛选出可供搜索的路由对象
 * @param routes 路由表
 * @param basePath 基础路径，默认为 /
 * @param prefixTitle
 */
export const generateRoutes = (routes, basePath = '/', prefixTitle = []) => {
  // 创建 result 数据
  let res = []
  for (const route of routes) {
    // 创建 包含 path和 title 的item
    const data = {
      path: path.resolve(basePath, route.path),
      title: [...prefixTitle]
    }
    // console.log(data)
    /**
     *  当前存在 meta 时， 组合成新的 title
     * 动态路由不允许被检索
     */
    // 正则
    const re = /.*\/:.*/
    if (route.meta && route.meta.title && !re.exec(route.path)) {
      const titles = route.meta.title
      data.title = [...data.title, titles]
      res.push(data)
    }
    // 存在 children 时 迭代进行处理
    if (route.children) {
      const tempRoutes = generateRoutes(route.children, data.path, data.title)
      if (tempRoutes.length >= 1) {
        res = [...res, ...tempRoutes]
      }
      // console.log(tempRoutes)
    }
  }
  return res
}
